home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / yacc / flexyacc / aflex.lha / aflex / src / telesoft / get_arg.c < prev    next >
C/C++ Source or Header  |  1991-05-16  |  2KB  |  48 lines

  1. /*
  2.  Copyright (c) 1990 Regents of the University of California.
  3.  All rights reserved.
  4.  
  5.  This software was developed by John Self of the Arcadia project
  6.  at the University of California, Irvine.
  7.  
  8.  Redistribution and use in source and binary forms are permitted
  9.  provided that the above copyright notice and this paragraph are
  10.  duplicated in all such forms and that any documentation,
  11.  advertising materials, and other materials related to such
  12.  distribution and use acknowledge that the software was developed
  13.  by the University of California, Irvine.  The name of the
  14.  University may not be used to endorse or promote products derived
  15.  from this software without specific prior written permission.
  16.  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  17.  IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  18.  WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  19. */
  20.  
  21. /* -------------------------------------------------------------------- */
  22. /*               -- C routine Get_Argument --                           */
  23. /* -------------------------------------------------------------------- */
  24.  
  25. short get_argument (position, arg_ptr)
  26.  
  27. short  position; /* position number of argument to be returned */
  28. char  *arg_ptr;  /* pointer to string in which to store argument */
  29.  
  30. {
  31.     extern int ada__argc_save;    /* number of command line arguments */
  32.     extern char **ada__argv_save; /* pointers to command line arguments */
  33.  
  34.     short strndx;  /* loop counter/string index */
  35.     char  c;       /* temporary character */
  36.  
  37.     /* check argument position number */
  38.     if (position > ada__argc_save - 1) return (0);
  39.  
  40.     /* one pass for every character in the parameter */
  41.     /* until the null character at the end of the    */
  42.     /* parameter is found                            */
  43.     for (strndx = 0 ; c = ada__argv_save[position][strndx] ; strndx++)
  44.             arg_ptr[strndx] = c;
  45.  
  46.     return (strndx); /* return the length of the string */
  47. }
  48.